---
title: "Upgrading to AG Grid 26"
description: "See what's new in AG Grid, view a full list of changes and migrate your $framework Data Grid to v26 with our Codemods."
migrationVersion: "26.0.0"
---

Full React Rendering, Row Grouping Enhancements, Columns Tool Panel and Set Filter Improvements, Charts Improvements 
## What's New

AG Grid {% migrationVersion() %} adds many new features - Full React Rendering, Row Grouping Enhancements, Columns Tool Panel and Set Filter Improvements, Charts series improvements 
and many more.

<!-- 
Documentation to the highest patch release of the major/minor
NOTE: This will not show if the current library version is the same as the migration version
-->
{% documentationArchiveSection version=migrationVersionPatch() /%}

## Breaking Changes
{% metaTag tags=["AnimationQueueEmptyEvent", "getChartImageDataURL"] /%}

- Now when setting / updating Column Definitions, the order of the Columns in the grid will always match the order of the Column Definitions. Prior to v26, `applyColumnDefOrder` was used to achieve this, however this is now the default behaviour. To turn off this behaviour, i.e. to maintain the order of Columns between updates to Column Definitions, set the grid property `maintainColumnOrder=true` (see [Maintain Column Order](https://www.ag-grid.com/archive/26.0.0/javascript-data-grid/column-updating-definitions/#maintain-column-order)).
- The `AnimationQueueEmptyEvent` has been removed, the grid API method `isAnimationFrameQueueEmpty()` can be used instead.
- `.cjs` are self-contained units preventing LicenseManager from recognizing the license key. These files previously included all AG Grid related dependencies. These files now only contain the relevant code for that module, which is the correct behaviour.
- The row auto-height behavior has been changed. When a column uses auto height (`colDef.autoHeight=true`), there is no need to call `gridApi.resetRowHeights()` in the `onColumnResized` event handler anymore to force the rows to update their row height after a column resize operation, as the grid will automatically resize the rows when it detects a height change. From v26.0 onward, keeping these calls to `gridApi.resetRowHeights()` causes flicker as rows render themselves twice instead of once. Please remove calls to `gridApi.resetRowHeights()` in `onColumnResized` event handler to avoid flicker in row re-rendering.
- Cell Renderers are completely destroyed when editing starts. This is in line with how Components work in frameworks (Angular, React, etc.), that when you take the Component out of the DOM, that is in effect destroying the component. So when editing starts (Cell Editor inserted into the Cell), the Cell Renderer is destroyed.

### Integrated Charts
{% metaTag tags=["processChartOptions", "getChartImageDataURL"] /%}

- The previously deprecated `processChartOptions()` callback has now been removed. Please use [Theme Based Configuration](https://www.ag-grid.com/archive/26.0.0/javascript-data-grid/integrated-charts-customisation/) instead.
- `getChartImageDataURL()` has been removed from the `ChartModel` and it is now available directly through the grid API (see [Downloading Chart Image](https://www.ag-grid.com/archive/26.0.0/javascript-data-grid/integrated-charts-api/#downloading-chart-image)).
- The chart instance has been removed from the `ChartModel` to support serialization. Use `gridApi.getChartRef(chartId)` instead (see [Accessing Chart Instance](https://www.ag-grid.com/archive/26.0.0/javascript-data-grid/integrated-charts-events/#accessing-chart-instance)).


### Standalone Charts
{% metaTag tags=["tooltipTracking", "tooltipClass", "tooltipEnabled", "tooltipRenderer", "layoutHorizontalSpacing", "layoutVerticalSpacing", "itemSpacing", "markerShape", "markerSize", "strokeWidth", "color", "fontStyle", "fontWeight", "fontSize", "fontFamily"] /%}

The following Standalone Chart options were previously deprecated and have now been removed:

**Chart**

- `tooltipTracking` - removed, use `tooltip.tracking` instead.
- `tooltipClass` - removed, use `tooltip.class` instead.

**Series**

- `tooltipEnabled` - removed, use `tooltip.enabled` instead.
- `tooltipRenderer` - removed, use `tooltip.renderer` instead.

**Legend**

- `layoutHorizontalSpacing` - removed, use `item.paddingX` instead.
- `layoutVerticalSpacing` - removed, use `item.paddingY` instead.
- `itemSpacing` - removed, use `item.marker.padding` instead.
- `markerShape` - removed, use `item.marker.shape` instead.
- `markerSize` - removed, use `item.marker.size` instead.
- `strokeWidth` - removed, use `item.marker.strokeWidth` instead.
- `color` - removed, use `item.label.color` instead.
- `fontStyle` - removed, use `item.label.fontStyle` instead.
- `fontWeight` - removed, use `item.label.fontWeight` instead.
- `fontSize` - removed, use `item.label.fontSize` instead.
- `fontFamily` - removed, use `item.label.fontFamily` instead.

## Deprecations

This release includes the following deprecations:

### Grid Options
{% metaTag tags=["groupMultiAutoColumn", "groupUseEntireRow", "groupSuppressAutoColumn", "defaultGroupSortComparator"] /%}

- `groupMultiAutoColumn` - deprecated, use `groupDisplayType='multipleColumns'` instead.
- `groupUseEntireRow` - deprecated, use `groupDisplayType='groupRows'` instead.
- `groupSuppressAutoColumn` - deprecated, use `groupDisplayType='custom'` instead.
- `defaultGroupSortComparator` - deprecated, use `defaultGroupOrderComparator` instead.

### Column Properties
{% metaTag tags=["pinnedRowCellRenderer", "pinnedRowCellRendererFramework", "pinnedRowCellRendererParams"] /%}

- `pinnedRowCellRenderer`, `pinnedRowCellRendererFramework`, and `pinnedRowCellRendererParams` are deprecated. Please use `cellRendererSelector` instead if you want a different Cell Renderer / Params for Pinned Rows.

## Changes List

If you would like to see the full list of changes in this release, please see the [Changelog](https://www.ag-grid.com/changelog/?fixVersion=26.0.0).
